function Config = configSignalGeneration()
    % 信号生成相关配置参数（卫星信号、旋转模型等）
    % 严格匹配《自适应时域波束成形.pdf》中几何模型、旋转信号特性及多天线参数定义
    Config = struct();
    
    %% 1. 仿真基础参数
    Config.sim = struct();
    Config.sim.seed = 17;                        % 随机数种子（噪声生成复用）
    Config.sim.duration = 5;                   % 仿真时长(s)，不宜过长，因为旋转载体的实际运行时间通常只有几秒到几十秒

    %% 2. 卫星信号核心参数（文档1.2节接收信号模型基础）
    Config.signal = struct();
    Config.signal.prnid = 7;                    % 卫星PRN号（文档1-1节多天线跟踪目标）
    Config.signal.navDataBitStartIndex = 1321;   % 导航数据起始索引（文档1-1节导航数据配置）
    Config.signal.carrierFreq = 1575.42e6;       % 载波频率(Hz)（GPS L1频段，文档1.2节波长计算基础）
    Config.signal.carrierWavelength = 3e8 / Config.signal.carrierFreq;  % 载波波长(m)（文档1.2节波长计算基础）
    Config.signal.codeType = 'L1CA';             % 伪码类型（文档1.2.1节天线方向图适配信号）
    Config.signal.codeRate = 1.023e6;            % 码速率(Hz)（L1CA标准码率）
    Config.signal.codeLen = 1023;                % 码长(chips)（L1CA码周期，文档1.2节码调制基础）
    Config.signal.bitDuration = 20e-3;           % 比特持续时间(s)（LNAV导航电文周期，文档1.2.2节相位计算时间尺度）

    Config.signal.BasebandSampleRate = 10230000;  % 基带采样率(Hz)
    Config.signal.SampleRate = 38192000;         % 采样率(Hz)（满足L1CA码率3倍过采样）
    Config.signal.CenterFrequency = 0;   % 中心频率(Hz)（文档1.2节载波频率计算基础） 10MHz or 0MHz

    %% 2.5 卫星-天线相对运动参数
    Config.motion.motionUpdateTime = 1e-3;        % 相对运动更新时间
    % 卫星过境场景下卫星相对于旋转中心的俯仰角和方位角变化 相关的参数
    % 俯仰角 $  Elevation(t) = elev_{min} + (elev_{max} - elev_{min}) * s(t) $ 
    % 方位角 $ Azimuth(t) = az_{start} + (az_{end} - az_{start}) * s(t) $ 
    % 其中 $s(t) = 0.5 * [1 - cos(2π t / passTime)],  t ∈ [0, passTime] $ 或者  $s(t)  = (t / passTime)$
    Config.motion.elevMin = 30;                % 俯仰角最小值(deg)
    Config.motion.elevMax = 30;                 % 俯仰角最大值(deg)
    Config.motion.azStart = 30;                  % 方位角起始值(deg)，注意：方位角变化范围为应该较小
    Config.motion.azEnd = 30;                  % 方位角结束值(deg)
    Config.motion.passTime = 300;                % 过境时间(s)
    Config.motion.useSineForElevation = 1;            % 是否对俯仰角使用正弦函数（0：线性函数）
    Config.motion.useSineForAzimuth = 0;              % 是否对方位角使用正弦函数（0：线性函数）


    %% 3. 平动多普勒基础参数（文档1.2.2节旋转多普勒叠加基础）
    Config.doppler = struct();
    Config.doppler.type = "const";           % const or rate  // or sin
    Config.doppler.bias = 100;                   % 静态多普勒偏差(Hz)（非旋转公共频偏）
    Config.doppler.rate = 10;                    % 多普勒变化率(Hz/s)（平动加速度贡献）
    % Config.doppler.peak = 0;                    % 多普勒峰值(Hz)（平动加速度贡献）
    % Config.doppler.period = 10;                    % 多普勒周期(s)（sin函数周期）


    %% 4. 旋转载体模型参数（严格匹配文档1.1节几何模型定义）
    Config.rotation = struct();
    Config.rotation.freq = 100;                   % 旋转频率(Hz)（待跟踪参数，文档1.1节f_R）
    Config.rotation.freqRate = 0;              % 旋转频率变化率(Hz/s)（文档1.1节ω(t)动态特性）
    Config.rotation.initialPhase = 0;            % 初始旋转相位(rad)（文档1.1节ψ_R）
    Config.rotation.radius = 0.03;               % 旋转半径(m)（文档1.1节|OC_m|，天线圆周分布半径）
    Config.rotation.ampScale = 1;               % 旋转信号幅度（归一化）（文档1.1节A_R）
    Config.rotation.rotPhaseToZero = false; % 旋转相位调整为0
    Config.rotation.rotAmpToZero = false; % 旋转幅度调整为1

    %% 5. 多天线配置（文档1.1节M个天线圆周分布定义）
    Config.antennas = struct();
    Config.antennas.count = 3;                   % 天线数量M（文档1.1节M= ? 均匀分布）
    % Config.antennas.phaseOffsets = linspace(0, 2*pi-2*pi/Config.antennas.count, Config.antennas.count); 
    
    %% 6. 传播延迟参数（载波相位延迟项）
    Config.delay = struct();
    Config.delay.type = "const";              % const or rate
    Config.delay.initial = 0.3;               % 码片初始延迟，延迟?个码片
    Config.delay.rate =  0.1;                 % 延迟变化率
    
    %% 7. 噪声与功率参数（文档1.2.1节接收信号信噪比计算）
    Config.noise = struct();
    Config.noise.boltzmann = 1.3806e-23;         % 玻尔兹曼常数(J/K)（文档1.2.1节热噪声计算）
    Config.noise.temperature = 300;              % 系统温度(K)（室温，文档1.2.1节噪声功率谱密度基础）
    Config.noise.bandwidth = 10230000;            % 噪声带宽(Hz) 0 表示 无噪声 10230000 是正常数值
    Config.noise.type = "const";                % const or variable
    Config.noise.pwrRx = -150;     % 接收信号功率(dBW)（文档1.2.1节不同时间段功率变化）
    Config.noise.pwrRxRate = 10;     % 接收信号功率变化率(dBW/s)（文档1.2.1节不同时间段功率变化）


    %% 8. 天线方向图参数（文档1.2.1节贴片天线方向图计算）
    Config.antennaPattern = struct();
    Config.antennaPattern.type = 'Patch';         % 天线类型（文档1.2.1节贴片天线）
    Config.antennaPattern.h = 0.01;              % 缝高(m)（文档1.2.1节方向图公式参数）
    Config.antennaPattern.W = 0.05;              % 缝宽(m)（文档1.2.1节方向图公式参数）
    Config.antennaPattern.Le = 0.1;              % 有效长度(m)（文档1.2.1节方向图公式参数）
    
end